package com.kimwu.design.combination;

import java.util.ArrayList;

/**
 * 文件夹类
 */
public class Folder extends AbstractFile{
    private ArrayList<AbstractFile> fileList = new ArrayList<AbstractFile>(); // 规定集合中成员类型
    private String name;
    public Folder(String name) {
        this.name = name;
    }

    public void add(AbstractFile file) {
        fileList.add(file);
    }

    public void remove(AbstractFile file) {
        fileList.remove(file);
    }

    public AbstractFile getChild(int i) {
        return (AbstractFile)fileList.get(i); // 强制转换为类型
    }

    public void killVirus() {
        System.out.println("****对文件夹'" + name + "'进行杀毒****"); // 模拟杀毒
        // 递归调用成员构件的杀毒方法
        for (Object obj :fileList) {
            ((AbstractFile)obj).killVirus();
        }
    }
}